import request from '@/config/axios'
import { TemplateRuleVO } from '@/api/awards/templaterule'

// 奖项 VO
export interface TemplateVO {
  id: string // 奖项ID
  awardsName: string // 奖项名称
  onlineApply: boolean // 是否允许在线申请
  conditionJson: string // 限定条件json
  qualificationReview: boolean // 是否资格审查
  differenceSelection: boolean // 是否差额评选
  preliminaryEvaluation: boolean // 是否初评
  awardsType: number // 奖项类型 0=通用 1=师昌绪
  honorType: string // 荣誉类型 字典
  teamHonor: string // 个人/团体荣誉
  templateRuleList: TemplateRuleVO[] // 奖项规则
  remark: string // 备注
}

export interface LVS<T = any> {
  label: string
  value: T
  selected: boolean
}

interface ScoreItem {
  type: string
  proportion: number
}

export interface ScoreJson {
  isAssignScores: boolean // 是否赋分
  masterScoring: ScoreItem // 硕士打分
  masterAssignScore: ScoreItem // 硕士赋分
  phdScoring: ScoreItem // 博士打分
  phdAssignScore: ScoreItem // 博士赋分
  trainingLevel: string // 培养层次
  grade: string // 年级
}

// 奖项 API
export const TemplateApi = {
  // 查询奖项分页
  getTemplatePage: async (params: any) => {
    return await request.get({ url: `/awards/template/page`, params })
  },

  // 查询奖项详情
  getTemplate: async (id: string) => {
    return await request.get({ url: `/awards/template/get?id=` + id })
  },

  // 新增奖项
  createTemplate: async (data: TemplateVO) => {
    return await request.post({ url: `/awards/template/create`, data })
  },

  // 修改奖项
  updateTemplate: async (data: TemplateVO) => {
    return await request.put({ url: `/awards/template/update`, data })
  },

  // 删除奖项
  deleteTemplate: async (id: string) => {
    return await request.delete({ url: `/awards/template/delete?id=` + id })
  },

  // 导出奖项 Excel
  exportTemplate: async (params) => {
    return await request.download({ url: `/awards/template/export-excel`, params })
  },

  // 获得奖项下拉
  getTemplateSimpleList: async () => {
    return await request.get({ url: `/awards/template/simple-list` })
  },

  // 根据奖项ID查询奖项阶段规则列表
  getTemplateRules: async (id: string) => {
    return await request.get({ url: `/awards/template/get-template-rule?id=` + id })
  }
}
